package ventanas;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.factories.FormFactory;
import controladores.ControladorABMEspecialidad;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import negocio.Especialidad;
import javax.swing.JCheckBox;

public class VentanaABMEspecialidad extends JFrame {
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private final JLabel lblEspecialidad = new JLabel("Especialidad");
	private final JTextField txtEspecialidad = new JTextField();
	private final JLabel lblNombreEspecialidad = new JLabel("Nombre Especialidad:");
	private final JButton btnAceptar = new JButton("Aceptar");
	private final JButton btnCancelar = new JButton("Cancelar");
	private final JButton btnBajaEspecialidad = new JButton("Dar de Baja Especialidad");
	private ControladorABMEspecialidad controlador;
	private Especialidad esp;
	private final JCheckBox chckbxEditarEspecialidad = new JCheckBox("Editar Especialidad");
	
	public VentanaABMEspecialidad(Especialidad especialidad) {
		setTitle("Especialidad");
		this.esp = especialidad;
		this.controlador = new ControladorABMEspecialidad(this);
		initGUI();
		agregarListeners();
		cargarDatosPrevios();
	}
	
	private void initGUI() {
		txtEspecialidad.setColumns(10);
		setBounds(100, 100, 377, 310);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(new FormLayout(new ColumnSpec[] {
				ColumnSpec.decode("max(104dlu;default)"),
				FormFactory.RELATED_GAP_COLSPEC,
				ColumnSpec.decode("max(49dlu;default):grow"),
				FormFactory.RELATED_GAP_COLSPEC,
				ColumnSpec.decode("max(57dlu;default)"),},
			new RowSpec[] {
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				RowSpec.decode("max(7dlu;default)"),
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,}));
		contentPane.add(lblEspecialidad, "1, 1, 5, 1, center, default");
		contentPane.add(chckbxEditarEspecialidad, "1, 3, left, default");
		contentPane.add(lblNombreEspecialidad, "1, 7, left, default");
		contentPane.add(txtEspecialidad, "3, 7, 3, 1, fill, top");
		contentPane.add(btnBajaEspecialidad, "1, 11");
		contentPane.add(btnAceptar, "1, 15");
		contentPane.add(btnCancelar, "3, 15");
		this.setVisible(true);
		this.setLocationRelativeTo(null);
		this.pack();
	}
	
	private void cargarDatosPrevios(){
		if(esp!=null){
			txtEspecialidad.setText(esp.getNombre());
		}
	}
	
	private void agregarListeners(){
		btnAceptar.addActionListener(controlador);
		btnBajaEspecialidad.addActionListener(controlador);
		btnCancelar.addActionListener(controlador);
		chckbxEditarEspecialidad.addActionListener(controlador);
	}
	
	public JTextField getTxtEspecialidad() {
		return txtEspecialidad;
	}
	
	public JButton getBtnAceptar() {
		return btnAceptar;
	}
	
	public JButton getBtnCancelar() {
		return btnCancelar;
	}
	
	public JButton getBtnBajaEspecialidad() {
		return btnBajaEspecialidad;
	}
	
	public Especialidad getEsp() {
		return esp;
	}
	
	public void setEsp(Especialidad esp) {
		this.esp = esp;
	}
	
	public JCheckBox getChckbxEditarEspecialidad() {
		return chckbxEditarEspecialidad;
	}
}
